package cn.com.platform.dao;

import java.util.List;

import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;

import cn.com.platform.entity.BlockItemEntity;

/**
 * 推荐内容dao
 * 
 * @author lmh
 */
public interface BlockItemDao extends JpaRepository<BlockItemEntity, Long>, JpaSpecificationExecutor<BlockItemEntity> {
	/**
	 * 通过id与标题获取对象（删除使用）
	 * 
	 * @param id
	 * @param title
	 * @return
	 * @author lmh 2016年8月19日
	 */
	public BlockItemEntity findByIdAndTitle(Long id, String title);

	/**
	 * 通过推荐位id与城市id与推荐项id(原itemId)获取对象（用来判断该推荐项是否已推荐）
	 * 
	 * @param itemId
	 * @param cityId
	 * @return
	 * @author lmh 2016年8月23日
	 */
	public BlockItemEntity findByBlockIdAndItemIdAndCityId(Long blockId, Long itemId, Long cityId);

	/** 最新内容 */
	@Query("select a from BlockItemEntity a where a.blockId=?1 group by a.itemId")
	public List<BlockItemEntity> getList(Long blockId, Pageable pageable);

	/** 最新内容 */
	@Query("select a from BlockItemEntity a where cityId=?1 and a.blockId=?2")
	public List<BlockItemEntity> getList(Long cityId, Long blockId, Pageable pageable);

	/**
	 * 通过城市id与推荐位id获取对象
	 * 
	 * @param id
	 * @param deleteStauts
	 * @return
	 * @author wxy 2016年8月22日
	 */
	public List<BlockItemEntity> findByCityIdAndBlockIdAndDeleteStatus(Long id, Long blockId, boolean deleteStatus);

}
